package com.olah.project.controller;

import com.olah.common.entity.dto.UtilResponse;
import com.olah.common.entity.po.project.Project;
import com.olah.project.service.ProjectDaoService;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.sql.Date;
import java.util.List;

/**
 * Project Controller
 */
@RefreshScope
@RestController
@RequestMapping("/project")
public class ProjectController {

    @Resource
    private ProjectDaoService service;

    /**
     * 获取项目列表
     */
    @GetMapping("/all")
    public UtilResponse<List<Project>> queryAll() {
        List<Project> list = service.queryAll();
        return UtilResponse.success(list);
    }

    /**
     * 根据项目 id 获取项目
     * @param id 项目 id
     */
    @GetMapping("/query")
    public UtilResponse<Project> queryById(@RequestParam("id") int id) {
        Project project = service.queryById(id);
        return UtilResponse.success(project);
    }

    /**
     * 获取所有职位/分工
     */
    @GetMapping("/positions")
    public UtilResponse<List<String>> getPositions() {
        return UtilResponse.success(service.getPositions());
    }

    /**
     * 发布一项新的项目
     * @param project 项目信息
     */
    @PostMapping("/publish")
    public UtilResponse<Boolean> publish(@RequestBody Project project) {
        project.setPubDate(new Date(System.currentTimeMillis()));
        service.publish(project);
        return UtilResponse.success("发布成功");
    }

}
